package com.uff.hmstpa.controller;

import com.uff.hmstpa.model.domain.entity.AbstractDoctor;
import com.uff.hmstpa.model.domain.valueobject.Appointment;
import com.uff.hmstpa.model.domain.valueobject.Patient;
import java.util.List;
import org.joda.time.DateTime;

public interface ScheduleSystemController {

    void init();

    void createDoctor(String name);

    void addDoctor(AbstractDoctor doctor);

    List<AbstractDoctor> retrieveDoctors();

    void setSelectedDoctor(String doctorName);

    AbstractDoctor getSelectedDoctor();

    List<Appointment> retrieveAppointmentList(AbstractDoctor doctor);

    Patient retrievePatient(String cpf);

    AbstractDoctor retrieveDoctor(String crm);

    Appointment retrieveAppointment(String cpf, String name, DateTime time);
}
